package ventanas;

import recursos.MIF;
import recursos.MCB;
import recursos.Sesion;
import recursos.TextFilterDocument;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JButton;
import org.jdesktop.swingx.JXTable;
import controlador.ImportarVeritradeController;
import org.jdesktop.swingx.JXBusyLabel;

public class IFImportarVeritrade extends MIF {
	private static final long serialVersionUID = 1L;
	private JTextField txtEjercicio;
	private JTextField txtPeriodo;
	private JLabel lblEjercicio;
	private JLabel lblPeriodo;
	private JLabel lblTipo;
	private MCB cboTipo;
	private JButton btnImportar;
	private JPanel pnDatos;
	private JPanel pnProceso;
	private TextFilterDocument tfdEjercicio = new TextFilterDocument(
			TextFilterDocument.DIGITS, 4);
	private TextFilterDocument tfdPeriodo = new TextFilterDocument(
			TextFilterDocument.DIGITS, 2);
	private JXTable tbProceso;
	private DefaultTableModel dtm;
	private JScrollPane scpProceso;
	private String[] cabecera = { "Item", "HTS Code", "HTS Code Description",
			"Custom", "DUA", "Date", "ETA", "B/L No", "Tax ID", "Importer",
			"Exporter", "Gross kg", "Net kg", "Qty 1", "Unit 1", "Qty 2",
			"Unit 2", "U$ FOB Tot", "U$ Freight Tot", "U$ CFR Tot",
			"U$ Insurance Tot", "U$ CIF Tot", "U$ FOB Unit 1", "U$ CFR Unit 1",
			"U$ CIF Unit 1", "U$ (CIF + Taxes) Unit 1", "U$ FOB Unit 2",
			"U$ CFR Unit 2", "U$ CIF Unit 2", "U$ (CIF + Taxes) Unit 2",
			"Origin Country", "Loading Country", "Loading Port", "Via",
			"Transport", "Custom", "Bank", "Warehouse", "Status",
			"Commercial Description"};
	private String[][] datos;
	private JXBusyLabel lblCargando;
	public IFImportarVeritrade() {
		setTitle(getTitle() + "-" + Sesion.tfiImportarVeritrade);
		btnGuardar.setVisible(true);
		btnCancelar.setVisible(true);
		btnGuardar.setEnabled(false);
		btnCancelar.setEnabled(false);
		
		pnDatos = new JPanel();
		pnDatos.setBorder(new TitledBorder(null, "Datos", TitledBorder.LEADING,
				TitledBorder.TOP, null, null));
		pnDatos.setBounds(10, 11, 702, 54);
		contenedor.add(pnDatos);
		pnDatos.setLayout(null);

		lblEjercicio = new JLabel("Ejercicio");
		lblEjercicio.setBounds(10, 20, 61, 16);
		pnDatos.add(lblEjercicio);

		lblPeriodo = new JLabel("Periodo");
		lblPeriodo.setBounds(128, 20, 46, 16);
		pnDatos.add(lblPeriodo);

		txtEjercicio = new JTextField();
		txtEjercicio.setBounds(60, 18, 53, 20);
		txtEjercicio.setDocument(tfdEjercicio);
		pnDatos.add(txtEjercicio);

		txtPeriodo = new JTextField();
		txtPeriodo.setBounds(177, 18, 46, 20);
		txtPeriodo.setDocument(tfdPeriodo);
		pnDatos.add(txtPeriodo);

		lblTipo = new JLabel("Tipo");
		lblTipo.setBounds(235, 21, 46, 14);
		pnDatos.add(lblTipo);

		cboTipo = new MCB("tbl_TipoInformacion", "id",
				"nombre_tipo");
		cboTipo.setBounds(267, 18, 203, 20);
		pnDatos.add(cboTipo);

		btnImportar = new JButton("Importar");
		btnImportar.setBounds(587, 17, 105, 23);
		pnDatos.add(btnImportar);
		
		lblCargando = new JXBusyLabel();
		//lblCargando.setBusy(true);
		lblCargando.setVisible(false);
		lblCargando.setText("Cargando...");
		lblCargando.setBounds(480, 15, 105, 26);
		pnDatos.add(lblCargando);

		pnProceso = new JPanel();
		pnProceso.setBorder(new TitledBorder(null, "",
				TitledBorder.LEADING, TitledBorder.TOP, null, null));
		pnProceso.setBounds(10, 76, 1314, 481);
		contenedor.add(pnProceso);
		pnProceso.setLayout(null);

		dtm = new DefaultTableModel(datos, cabecera);
		tbProceso = new JXTable(dtm);
		tbProceso.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		tbProceso.getTableHeader().setReorderingAllowed(false);
		tbProceso.setEditable(false);

		scpProceso = new JScrollPane(tbProceso);
		scpProceso.setBounds(10, 11, 1294, 459);
		pnProceso.add(scpProceso);
		limpiar();
	}

	public void limpiarTabla() {
		tbProceso.setModel(dtm = new DefaultTableModel(datos, cabecera));
		setResultadoBusqueda(tbProceso.getRowCount());
	}

	public JTextField getTxtEjercicio() {
		return txtEjercicio;
	}

	public JTextField getTxtPeriodo() {
		return txtPeriodo;
	}
	
	public MCB getCboTipo() {
		return cboTipo;
	}
	
	public JButton getBtnImportar() {
		return btnImportar;
	}
	
	public JXTable getTabla(){
		return tbProceso;
	}
	
	public DefaultTableModel getModelo(){
		return dtm;
	}

	public String getEjercicio() {
		return txtEjercicio.getText().trim();
	}

	public String getPeriodo() {
		return txtPeriodo.getText().trim();
	}

	public String getTipo() {
		return cboTipo.getSelectedItem().toString().trim();
	}
	
	public String[] getCabecera(){
		return cabecera;
	}
	
	public void setControlador(ImportarVeritradeController controlador){
		txtEjercicio.addActionListener(controlador);
		txtPeriodo.addActionListener(controlador);
		btnImportar.addActionListener(controlador);
		btnGuardar.addActionListener(controlador);
		btnCancelar.addActionListener(controlador);
	}
	
	public void activaControles(){
		btnCancelar.setEnabled(true);
		btnGuardar.setEnabled(true);
	}
	
	public void activaCampos(){
		txtEjercicio.setEnabled(true);
		txtPeriodo.setEnabled(true);
		cboTipo.setEnabled(true);
		btnImportar.setEnabled(true);
	}
	
	public void desactivaControles(){		
		btnCancelar.setEnabled(false);
		btnGuardar.setEnabled(false);
	}
		
	public void desactivaCampos(){
		txtEjercicio.setEnabled(false);
		txtPeriodo.setEnabled(false);
		cboTipo.setEnabled(false);
		btnImportar.setEnabled(false);
	}
	
	public void limpiar(){
		txtEjercicio.setText("");
		txtPeriodo.setText("");
		limpiarTabla();
	}
}
